package org.fight.util.data;

import java.util.ArrayList;
import java.util.List;

import com.fight.util.CommonUtils;

public class DataParse {
	
	/**
	* @Title: byteToInt
	* @Description: byte数组转List<Double>
	* @param byteArray
	* @param bit 转换成一个int值的位数
	* @param precision 精确度
	* @param minimum 最小单位
	* @return    设定文件
	* @return List<Double>    返回类型
	* @author: 
	* @date 2017年5月24日 下午2:13:04
	* @throws
	*/
	public static List<Double> byteToInt(byte[] byteArray,int bit,int precision,double minimum){
		List<Double> list = new ArrayList<Double>();
		int len = byteArray.length;
		int val = 0;
		for(int i=0; i < len; i++){
			if(i % bit == (bit-1)){
				val = byteArray[i] + (val << (i%bit*8));
				list.add(CommonUtils.parseDouble(val*minimum, precision));
				val = 0;
			}else{
				val = byteArray[i] + (val << (i%bit*8));
			}
		}
		return list;
	}
	
	/**
	* @Title: byteToInt
	* @Description: byte数组转List<Integer>
	* @param byteArray
	* @param bit
	* @return    设定文件
	* @return List<Integer>    返回类型
	* @author: 
	* @date 2017年5月25日 上午9:04:25
	* @throws
	*/
	public static List<Integer> byteToInt(byte[] byteArray,int bit){
		List<Integer> list = new ArrayList<Integer>();
		int len = byteArray.length;
		int val = 0;
		for(int i=0; i < len; i++){
			if(i % bit == (bit-1)){
				val += byteArray[i] << (i%bit*8);
				list.add(val);
				val = 0;
			}else{
				val += byteArray[i] << (i%bit*8);
			}
		}
		return list;
	}
	
	/**
	 * 
	* @Title: tenToBin
	* @Description: TODO(十进制转为八位的二进制)
	* @param x
	* @param bits
	* @return    设定文件
	* @return String    返回类型
	* @author: cjl
	* @date 2017年5月23日 下午5:22:47
	* @throws
	 */
	public static String tenToBin(int x,int bits){
		StringBuilder sb = new StringBuilder();
		for (int i = bits; i >0; i--) { 
		sb.append( (x&(1<<(i-1))) >>(i-1)); //从高到低输出
		}
		return sb.toString();
	}
}
